package com.wlyuan.open.dto.order;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Set;

/**
 * @author lijing
 * @description 订单基本信息
 */
@Data
public class OrderInfoDTO implements Serializable {

    private static final long serialVersionUID = -1349016128428615225L;
    @ApiModelProperty("单据编号")
    private String orderNo;
    @ApiModelProperty("合同编号")
    private String contractNo;
    @ApiModelProperty("客户ID")
    private Long customerId;
    @ApiModelProperty("客户名称")
    private String customerName;
    @ApiModelProperty("客户类型")
    private Integer customerType;
    @ApiModelProperty("客户租户")
    private Long customerTenantId;
    @ApiModelProperty("收货方类型")
    private Long consigneeId;
    @ApiModelProperty("收货方名称")
    private String consigneeName;
    @ApiModelProperty(value = "订单备注")
    private String desc;
    @ApiModelProperty(value = "绑定设备类型 1、电子回单 | 2、快递单号")
    private Integer trackType;
    @ApiModelProperty(value = "电子回单号/快递单号")
    private String deviceCode;
    @ApiModelProperty(value = "重量补差")
    private BigDecimal weightAddition;
    @ApiModelProperty(value = "体积补差")
    private BigDecimal volumeAddition;
    @ApiModelProperty(value = "价值补差")
    private BigDecimal valueAddition;
    @ApiModelProperty(value = "总价值")
    private BigDecimal totalValue;
    @ApiModelProperty(value = "订单时效天数")
    private Integer days;
    @ApiModelProperty("订单状态")
    private Integer status;

    @ApiModelProperty("签收时间")
    private LocalDateTime signAt;
    @ApiModelProperty("回单签收时间")
    private LocalDateTime receiptSignTime;
    @ApiModelProperty("制单人")
    private Long createMan;
    @ApiModelProperty("制单人描述")
    private String createManDesc;
    @ApiModelProperty("制单时间")
    private LocalDateTime createOrderTime;
    @ApiModelProperty("修改时间")
    private LocalDateTime updateTime;
    @ApiModelProperty("签收人")
    private Long signBy;
    @ApiModelProperty("回单时间")
    private LocalDateTime receiptAt;
    @ApiModelProperty("回单操作人")
    private Long receiptBy;
    @ApiModelProperty("关单时间")
    private LocalDateTime closeAt;
    @ApiModelProperty("关单操作人")
    private Long closeBy;

    @ApiModelProperty(value = "总重量")
    private BigDecimal totalWeight;
    @ApiModelProperty(value = "总体积")
    private BigDecimal totalVolume;
    @ApiModelProperty("总数量")
    private Integer totalQuantity;
    @ApiModelProperty("总费用")
    private BigDecimal totalCost;
    @ApiModelProperty("实签总数")
    private Integer totalSignQuantity;
    @ApiModelProperty("异签总数")
    private Integer totalSignExceptionQuantity;
    @ApiModelProperty("回单总数")
    private Integer totalReceiptQuantity;
    @ApiModelProperty("回单异常总数")
    private Integer totalReceiptExceptionQuantity;
    @ApiModelProperty("签收类型")
    private Integer signType;
    @ApiModelProperty("签收说明")
    private String signDesc;
    @ApiModelProperty("回单说明")
    private String receiptDesc;
    @ApiModelProperty("关单说明")
    private String closeDesc;
    @ApiModelProperty("异常状态")
    private Set<Integer> exceptionStatus;
    @ApiModelProperty("签收扩展信息")
    private String signInfo;

    @ApiModelProperty("延期原因")
    private Integer delayReason;
}
